对象的左值

  我们可以分配和使用没有名字的“变量”,而且可能对一个看起来很奇怪的表达式赋值(例如,*p[a+10] = 7)。因此,对一个名字的某种需要就是它应该表示“存储器里的什么东西”。这也就是最简单最基本的对象概念。这样,一个对象就是存储中一片连续的区域;左值就是引用某个对象的表达式。术语左值原本是想说“某个可以放在赋值左边的东西”。然而,并不是每个左值都能够被用在赋值的左边,左值也可以是引用了某个常量(5.5节)。没有被声明为常量的左值常常被称做是可修改的左值。不要将对象的这种简单和低级的概念与类对象和多态性类型(15.4.3节)的对象概念弄混淆了。

  除非程序员另有描述(7.1.2节、10.4.8节),在一个函数里声明的对象都在其定义被遇到之时建立,在它的名字离开作用域的时候被销毁(10.4.4节)。这种对象被称做自动对象。在全局和名字空间作用域里的对象,以及在函数和类里声明为static的对象只建立一次(仅仅一次),它们一直“生存”到程序结束(10.4.9节)。这种对象被称为静态对象。数组成员、非静态结构和类的成员的生存期由它们作为其部分的那些对象决定。

  通过new和delete运算符,你可以建立生存期可以直接控制的对象(6.2.6节)。

🔚